{
   "endPoints":[
      {
         "path":"/account.{format}/authenticate/{username}",
         "description":"",
         "operations":[
            {
               "parameters":[
                  {
                     "name":"username",
                     "description":"A confirmed Wordnik username",
                     "required":true,
                     "paramType":"path"
                  },
                  {
                     "name":"password",
                     "description":"The user's password",
                     "required":true,
                     "paramType":"query"
                  },
                  {
                     "name":"format",
                     "defaultValue":"json",
                     "description":"API response format",
                     "required":true,
                     "allowableValues":"json,xml",
                     "paramType":"path"
                  }
               ],
               "response":[
                  {
                     "valueType":"AuthenticationToken",
                     "errorResponses":[
                        {
                           "reason":"Account not available.",
                           "code":403
                        },
                        {
                           "reason":"User not found.",
                           "code":404
                        }
                     ],
                     "condition":"any"
                  }
               ],
               "summary":"Authenticates a User",
               "open":false,
               "httpMethod":"GET"
            }
         ]
      },
      {
         "path":"/account.{format}/apiTokenStatus",
         "description":"",
         "operations":[
            {
               "parameters":[
                  {
                     "name":"api_key",
                     "description":"Wordnik authentication token",
                     "required":true,
                     "paramType":"header"
                  },
                  {
                     "name":"format",
                     "defaultValue":"json",
                     "description":"API response format",
                     "required":true,
                     "allowableValues":"json,xml",
                     "paramType":"path"
                  }
               ],
               "response":[
                  {
                     "valueType":"ApiTokenStatus",
                     "errorResponses":[
                        {
                           "reason":"No token supplied.",
                           "code":400
                        },
                        {
                           "reason":"No API account with supplied token.",
                           "code":404
                        }
                     ],
                     "condition":"any"
                  }
               ],
               "summary":"Returns usage statistics for the API account.",
               "open":true,
               "httpMethod":"GET"
            }
         ]
      },
      {
         "path":"/account.{format}/authenticate/{username}",
         "description":"",
         "operations":[
            {
               "parameters":[
                  {
                     "name":"username",
                     "description":"A confirmed Wordnik username",
                     "required":true,
                     "paramType":"path"
                  },
                  {
                     "description":"The user's password",
                     "required":true,
                     "paramType":"body"
                  },
                  {
                     "name":"format",
                     "defaultValue":"json",
                     "description":"API response format",
                     "required":true,
                     "allowableValues":"json,xml",
                     "paramType":"path"
                  }
               ],
               "response":[
                  {
                     "valueType":"AuthenticationToken",
                     "errorResponses":[
                        {
                           "reason":"Account not available.",
                           "code":403
                        },
                        {
                           "reason":"User not found.",
                           "code":404
                        }
                     ],
                     "condition":"any"
                  }
               ],
               "summary":"Authenticates a user",
               "open":false,
               "httpMethod":"POST"
            }
         ]
      },
      {
         "path":"/account.{format}/user",
         "description":"",
         "operations":[
            {
               "parameters":[
                  {
                     "name":"api_key",
                     "description":"API Key",
                     "required":true,
                     "paramType":"header"
                  },
                  {
                     "name":"auth_token",
                     "description":"The auth token of the logged-in user, obtained by calling /account.{format}/authenticate/{username} (described above)",
                     "required":true,
                     "paramType":"header"
                  },
                  {
                     "name":"format",
                     "defaultValue":"json",
                     "description":"API response format",
                     "required":true,
                     "allowableValues":"json,xml",
                     "paramType":"path"
                  }
               ],
               "response":[
                  {
                     "valueType":"user",
                     "errorResponses":[
                        {
                           "reason":"Not logged in.",
                           "code":403
                        },
                        {
                           "reason":"User not found.",
                           "code":404
                        }
                     ],
                     "condition":"any"
                  }
               ],
               "summary":"Returns the logged-in User",
               "open":false,
               "notes":"Requires a valid auth_token to be set.",
               "httpMethod":"GET"
            }
         ]
      },
      {
         "path":"/account.{format}/wordLists",
         "description":"",
         "operations":[
            {
               "parameters":[
                  {
                     "name":"api_key",
                     "description":"API Key",
                     "required":true,
                     "paramType":"header"
                  },
                  {
                     "name":"auth_token",
                     "description":"auth_token of logged-in user",
                     "required":true,
                     "paramType":"header"
                  },
                  {
                     "name":"skip",
                     "description":"Results to skip",
                     "required":false,
                     "paramType":"query"
                  },
                  {
                     "name":"limit",
                     "description":"Maximum number of results to return",
                     "required":false,
                     "paramType":"query"
                  },
                  {
                     "name":"format",
                     "defaultValue":"json",
                     "description":"API response format",
                     "required":true,
                     "allowableValues":"json,xml",
                     "paramType":"path"
                  }
               ],
               "response":[
                  {
                     "valueType":"List[wordList]",
                     "errorResponses":[
                        {
                           "reason":"Not authenticated.",
                           "code":403
                        },
                        {
                           "reason":"User account not found.",
                           "code":404
                        }
                     ],
                     "condition":"any"
                  }
               ],
               "summary":"Fetches WordList objects for the logged-in user.",
               "open":false,
               "httpMethod":"GET"
            }
         ]
      }
   ],
   "models":[
      {
         "name":"wordList",
         "fields":[
            {
               "name":"name",
               "required":false,
               "paramType":"string"
            },
            {
               "name":"id",
               "required":false,
               "paramType":"long"
            },
            {
               "name":"type",
               "required":false,
               "paramType":"WordListType"
            },
            {
               "name":"description",
               "required":false,
               "paramType":"string"
            },
            {
               "name":"userId",
               "required":false,
               "paramType":"long"
            },
            {
               "name":"permalink",
               "required":false,
               "paramType":"string"
            },
            {
               "name":"createdAt",
               "required":false,
               "paramType":"Date"
            },
            {
               "name":"username",
               "required":false,
               "paramType":"string"
            },
            {
               "name":"updatedAt",
               "required":false,
               "paramType":"Date"
            },
            {
               "name":"numberWordsInList",
               "required":false,
               "paramType":"long"
            }
         ]
      },
      {
         "name":"ApiTokenStatus",
         "fields":[
            {
               "name":"token",
               "required":false,
               "paramType":"string"
            },
            {
               "name":"expiresInMillis",
               "required":false,
               "paramType":"long"
            },
            {
               "name":"totalRequests",
               "required":false,
               "paramType":"long"
            },
            {
               "name":"remainingCalls",
               "required":false,
               "paramType":"long"
            },
            {
               "name":"resetsInMillis",
               "required":false,
               "paramType":"long"
            }
         ]
      },
      {
         "name":"AuthenticationToken",
         "fields":[
            {
               "name":"token",
               "required":false,
               "paramType":"string"
            },
            {
               "name":"userId",
               "required":false,
               "paramType":"long"
            }
         ]
      },
      {
         "name":"user",
         "fields":[
            {
               "name":"id",
               "description":"Unique idenitifier for a user",
               "required":false,
               "paramType":"long"
            },
            {
               "name":"displayName",
               "description":"Display name",
               "required":false,
               "paramType":"string"
            },
            {
               "name":"status",
               "description":"Account status",
               "required":false,
               "allowableValues":"0,1,2,3",
               "paramType":"int"
            },
            {
               "name":"password",
               "required":false,
               "paramType":"string"
            },
            {
               "name":"userName",
               "description":"User name",
               "required":false,
               "paramType":"string"
            },
            {
               "name":"email",
               "description":"Email address",
               "required":false,
               "paramType":"string"
            },
            {
               "name":"faceBookId",
               "description":"Facebook ID",
               "required":false,
               "paramType":"string"
            }
         ]
      }
   ]
}